/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.icad.controllers;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.model.SelectItem;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import org.icad.dao.AbstractFacade;
import org.icad.dao.MiembroDAO;
import org.icad.entity.EstadoCivil;
import org.icad.entity.Miembro;
import org.icad.entity.Profesion;
import org.icad.process.MiembroFacade;

/**
 *
 * @author Gabriel Bran gbran.u@gmail.com
 */
@ViewScoped
@Named(value = "miembroBean")
public class MiembroController extends Catalog<Miembro> implements java.io.Serializable {
    
    @EJB
    private MiembroDAO miembroDAO;
    @EJB
    private MiembroFacade miembroFacade;
    private List<EstadoCivil> listaEstadoCivil = new ArrayList<>();
    private List<Profesion> listaProfesiones = new ArrayList<>();
    private List<SelectItem> listaSexo = new ArrayList<>();
    
    @PostConstruct
    public void initialize() {
        initializeBean();
    }
    
    @Override
    protected void validate() throws Exception {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    @Override
    protected AbstractFacade getCurrentDAOFacade() {
        return miembroDAO;
    }
    
    @Override
    protected void initializeBean() {
        set(new Miembro(), Catalog.CREATE_ACTION);
        getCurrent().setEstadoCivil(new EstadoCivil());
        getCurrent().setProfesion(new Profesion());
        setListaSexo(getValueList("sexoBean"));
        setListaEstadoCivil(miembroFacade.listaEstadoCivil());
        setListaProfesiones(miembroFacade.listaProfesiones());
    }
    
    public List<EstadoCivil> getListaEstadoCivil() {
        return listaEstadoCivil;
    }
    
    public void setListaEstadoCivil(List<EstadoCivil> listaEstadoCivil) {
        this.listaEstadoCivil = listaEstadoCivil;
    }
    
    public List<SelectItem> getListaSexo() {
        return listaSexo;
    }
    
    public void setListaSexo(List<SelectItem> listaSexo) {
        this.listaSexo = listaSexo;
    }
    
    public List<Profesion> getListaProfesiones() {
        return listaProfesiones;
    }
    
    public void setListaProfesiones(List<Profesion> listaProfesiones) {
        this.listaProfesiones = listaProfesiones;
    }
    
}
